Microsserviços: entendendo o que são e seus benefícios

A entrega contínua (CD) é a prática de usar a automação para liberar o software em iterações curtas

Teste o Compass grátis

Improve your developer experience, catalog all services, and increase software health.

Até meados de 2013, as empresas costumavam desenvolver software corporativo construindo aplicativos como unidades individuais com grandes bases de código, uma arquitetura monolítica. À medida que o software se tornou mais complexo e a computação em nuvem ganhou popularidade, essa abordagem se tornou menos prática.

O surgimento de produtos de software como um serviço (aplicativos fornecidos na nuvem) permitiu que as empresas usassem provedores, como a Amazon Web Services, para criar novos servidores e adicionar redundância com rapidez. Isso garantiu que os serviços permanecessem on-line durante upgrades. Também estabeleceu uma nova era de velocidade e agilidade. Os usuários começaram a esperar melhorias e upgrades rápidos, o que levou as empresas a alterarem seus processos de desenvolvimento.

As empresas começaram a dividir os aplicativos em serviços ou microsserviços menores e independentes. Por exemplo, em vez de incluir uma caixa de entrada de mensagens como parte de uma plataforma monolítica de comércio eletrônico, elas podem criar um microsserviço separado para essa funcionalidade

. Em paralelo, os desenvolvedores começaram a trabalhar em grupos menores e mais especializados, modificando e aprimorando serviços individuais sem risco para todo o aplicativo. Em geral, esses grupos também assumiam a responsabilidade pelas operações de seu código — um modelo chamado DevOps. Para facilitar essas alterações, os gerentes de projeto começaram a desenvolver novas metodologias, como a abordagem Ágil, que divide os projetos em lançamentos menores e mais frequentes.  

Continue lendo para saber mais sobre a anatomia dos aplicativos baseados em microsserviços. Além disso, descubra como o Compass da Atlassian reduz a complexidade e permite que os desenvolvedores usufruam dos benefícios desse modelo arquitetônico.

O que são microsserviços?

Um microsserviço é uma função responsável por uma única parte da lógica (exceto pelos microsserviços de domínio, explicados abaixo). Vários microsserviços se combinam para criar aplicativos distribuídos, como o Jira Software.

Há três tipos de microsserviços:

  1. 1

    Domain microservices loosely couple services with related functionality. 

  2. 2

    Os microsserviços de integração facilitam a interação entre aplicativos não relacionados. 

  3. 3

    Os microsserviços de unidade de trabalho lidam com funções singulares. 

Os microsserviços interagem entre si usando interfaces de programação de aplicativos (APIs). Os desenvolvedores que trabalham em serviços individuais podem aprender o funcionamento interno dos outros microsserviços, o que é outra vantagem sobre a arquitetura monolítica.

A arquitetura baseada em microsserviços oferece muitos benefícios, mas também aumenta a complexidade. É por isso que a Atlassian desenvolveu o Compass — para ajudar as empresas a simplificarem os processos à medida que crescem. Essa plataforma para experiência do desenvolvedor reúne todas as informações sobre resultados de engenharia e colaboração da equipe em um local central e pesquisável.

Princípios fundamentais dos microsserviços

Microservices-based architecture has several distinguishing features. Developers can develop and deploy their services independently using the languages and technologies that suit their components. 

Communication between microservices is API-based, allowing access to data from various sources without modification. Individual services can scale based on demand, saving costs and ensuring availability.

These attributes make microservices-based distributed applications flexible and easy to maintain.

Benefícios dos microsserviços

Microservices provide many advantages. They simplify development and project management. Sometimes, they may eliminate the need for separate operations teams since developers can handle operations for the microservices they build. 

Some other benefits of microservices include:

Resiliência e isolamento de falhas

Um erro afeta todo o aplicativo em arquiteturas monolíticas. Mas os microsserviços são independentes. Uma falha não afetará as outras partes do aplicativo.

Agilidade

Dividir os aplicativos em partes menores acelera o desenvolvimento. Isso permite que as equipes criem, testem e implementem software com mais rapidez.

Diversidade tecnológica

Os microsserviços permitem que os desenvolvedores escolham as ferramentas e as tecnologias certas para o trabalho. Isso aumenta a eficiência e a produtividade.

Manutenção aprimorada

A capacidade de testar componentes individuais facilita a localização e a correção de bugs sem colocar todo o aplicativo off-line.

Resiliência e isolamento de falhas

Um erro afeta todo o aplicativo em arquiteturas monolíticas. Mas os microsserviços são independentes. Uma falha não afetará as outras partes do aplicativo.

Agilidade

Dividir os aplicativos em partes menores acelera o desenvolvimento. Isso permite que as equipes criem, testem e implementem software com mais rapidez.

Diversidade tecnológica

Os microsserviços permitem que os desenvolvedores escolham as ferramentas e as tecnologias certas para o trabalho. Isso aumenta a eficiência e a produtividade.

Manutenção aprimorada

A capacidade de testar componentes individuais facilita a localização e a correção de bugs sem colocar todo o aplicativo off-line.

Desafios dos microsserviços

Microservices-based architecture has many benefits, but it also comes with challenges. 

One challenge of microservices is that the independent services generate their logs. This is a disadvantage compared to monoliths' centralized logs, which provide a single source of truth for developers and operations teams. Monitoring and infrastructure management are also more complicated since many moving pieces exist. Testing and debugging are challenging because, unlike monoliths, no integrated development environment (IDE) exists.

Atlassian's Compass can help with all these challenges. Compass facilitates collaboration and allows companies to manage the complexities of distributed architectures as they scale. It does this by bringing the disconnected information together in a central, searchable location.

Para que é usada a arquitetura de microsserviços?

Em geral, grandes sites para consumidores usam centenas ou milhares de microsserviços. Os microsserviços são ainda mais úteis nos seguintes casos de uso e setores:

  • Sites de comércio eletrônico, como o eBay, usam microsserviços separados para carrinhos de compras, aplicativos móveis e mensagens.
  • Instituições financeiras, como o Bank of America, usam microsserviços para se comunicar com serviços externos. Elas também os usam para lidar com funções como autorizações de usuários e exibição de transações.
  • Plataformas de redes sociais, como Instagram e Facebook, usam microsserviços para exibir feeds de notícias, mensagens, notificações e redes de amigos dos usuários.

Práticas recomendadas para gerenciar microsserviços

Ao longo dos anos, os desenvolvedores criaram dezenas de práticas recomendadas essenciais para o desenvolvimento de microsserviços. Abaixo estão alguns exemplos:

  • O princípio de responsabilidade única (SRP) especifica que cada módulo ou microsserviço deve ter apenas uma função. A integração contínua (IC) do SRP é uma metodologia de controle de código-fonte que automatiza as verificações de qualidade do código antes da fusão em um projeto, permitindo velocidade ao eliminar a necessidade de um processo de controle de qualidade separado. Essa prática recomendada de DevOps ajuda na velocidade. A IC precede a entrega contínua (CD), que executa ferramentas de construção automatizadas para manter o software pronto para implantação. Os
  • gateways de API simplificam a comunicação entre microsserviços, gerenciam a autenticação e a autorização e aumentam a segurança. 
  • A comunicação assíncrona entre microsserviços preserva a autonomia, reduzindo as dependências que podem retardar o funcionamento do aplicativo.  
  • O controle de versão de microsserviços é fundamental quando os desenvolvedores implementam alterações importantes, como a remoção de uma operação inteira. Essa prática suaviza as transições e minimiza a probabilidade de interrupção do serviço.  

Open DevOps da Atlassian, desenvolvido com o Jira Software, facilita a integração automática das ferramentas da Atlassian e de parceiros pelas equipes, permitindo que elas se concentrem na criação e operação de software.

Gerencie melhor sua arquitetura de microsserviços com o Compass

Compass da Atlassian é uma plataforma de experiência do desenvolvedor que reúne arquitetura de software distribuída e equipes colaborando em um só lugar. Ele fornece uma visão geral conveniente de todos os componentes e serviços onde a equipe trabalha. Ele também inclui um catálogo de componentes de software para ajudar os desenvolvedores a encontrarem com facilidade o que desejam.

O Compass permite fácil gerenciamento de componentes, rastreamento de propriedade e monitoramento de relacionamentos. Ele também acompanha as alterações em tempo real.

Integrar o Compass ao seu ambiente de desenvolvimento é simples devido à interface de usuário personalizável e à compatibilidade com ferramentas internas e de terceiros. Aprenda a gerenciar sua arquitetura de microsserviço com o Compass e saiba como ele reúne informações desconectadas em um local central e unificado.

Microsserviços: perguntas frequentes

What tools do people commonly use in microservices?

As empresas costumam usar ferramentas de conteinerização, como Kubernetes e Docker. Elas também usam gateways de API entre microsserviços e seus clientes com frequência. Esses gateways executam funções de tráfego de API, como autenticação, controle de acesso e balanceamento de carga.

Como os microsserviços diferem da arquitetura monolítica?

Monólitos são grandes bases de código que funcionam como um só sistema. Eles exigem tempo de inatividade do sistema para atualizações e depuração. As arquiteturas de microsserviços são aplicativos distribuídos com fragmentos de funcionalidade menores e independentes. Os desenvolvedores podem fazer upgrade, melhorar e depurar esses módulos sem que todo o aplicativo fique off-line. Isso simplifica o dimensionamento e ajuda na velocidade de desenvolvimento.

Como os microsserviços afetam o DevOps?

Aqueles que entendem de DevOps sabem que a integração e a entrega contínuas (o pipeline de DevOps IC/CD) são os pilares das metodologias de DevOps. A natureza modular dos microsserviços se alinha bem a essa abordagem. Os microsserviços possibilitam aos desenvolvedores criar, testar e implementar versões pequenas e frequentes com rapidez.

Participe da Comunidade da Atlassian para acessar mais artigos e discussões sobre microsserviços.

Recomendado para você

Comunidade do Compass

Tutorial: criar novo componente

Comece a usar o Compass de graça